<?php

class IndexController extends Zend_Controller_Action {

    private $_questions = array();

    public function init() {

        $this->_questions = array(
                1 => array(
                        'hoofdVraag' => 'Is er sprake van een (talk)show met publiek
en muziek?',
                        'subVraag' => array(
                                1 => 'Indien blootstellingduur > 1/3 van totale
registratietijd: gehoorbeschermingsmiddelen laten
dragen door operationele technici op de vloer.',
                                2 => 'Zorg dat de duur van het muziekoptreden niet
meer dan 1/3 van de totale registratietijd
(repetitie + opname + bouwen) bedraagt en/of dat het
volume van het geluid in de studio zo laag mogelijk
staat.'
                        )
                ),
                2 => array(
                        'hoofdVraag' => 'Is er sprake van de registratie van een
muziekprogramma?',
                        'subVraag' => array(
                                1 => 'Bij een popconcert: laat alle medewerkers die
zich op of in de nabijheid van het podium bevinden
tijdens repetities en optredens gehoorbescherming
met antigeluid of voor dit doel individueel gegoten
otoplastieken dragen.',
                                2 => 'Bij opnamen in een studio, concertzaal:
gehoorbeschermingsmiddelen laten dragen op beide
oren, door allen die zich in de studio/concertzaal
bevinden. Een koptelefoon biedt voldoende
bescherming, mits goed op beide oren gedragen en
mits het muziekgeluid niet via de regie alsnog op
het oor terecht komt.'
                        )
                ),
                3 => array(
                        'hoofdVraag' => 'Is er sprake van riggingswerkzaamheden?',
                        'subVraag' => array(
                                1 => 'Zorg dat riggingswerkzaamheden uitsluitend
worden uitgevoerd door opgeleide medewerkers
(beoordelingbelasting, op juiste wijze aanbrengen
van extra ophangpunten, veilig werken).'
                        )
                ),
                4 => array(
                        'hoofdVraag' => 'Worden opnamen gemaakt in de buurt van
bronnen, apparaten die ioniserende straling uitzenden?',
                        'subVraag' => array(
                                1 => 'Raadpleeg vooraf een stralingsdeskundige.'
                        )
                ),
                5 => array(
                        'hoofdVraag' => 'Worden opnamen gemaakt in de buurt van/op
zendmasten?',
                        'subVraag' => array(
                                1 => 'Vermijd posities voor de stralenbundel.'
                        )
                ),
                6 => array(
                        'hoofdVraag' => 'Worden opnamen gemaakt in de buurt van
hoogspanningsmasten?',
                        'subVraag' => array(
                                1 => 'Minimale afstand van 8 meter tot lijn bewaren.'
                        )
                ),
                7 => array(
                        'hoofdVraag' => 'Worden opnamen gemaakt in de buurt van een
zendantenne (bijvoorbeeld achterop een motorfiets)?',
                        'subVraag' => array(
                                1 => 'Vermijd posities in de stralenbundel'
                        )
                ),
                8 => array(
                        'hoofdVraag' => 'Zijn dieren aanwezig in de directe
nabijheid van de opnamelocatie (wanneer ze geen onderdeel
uitmaken van de opname)?',
                        'subVraag' => array(
                                1 => 'Zorg dat door het opnemen zelf geen ongewenst
gedrag uitgelokt en/of geuit kan worden dat gericht
is tegen de crew en andere aanwezigen.'
                        )
                ),
                9 => array(
                        'hoofdVraag' => 'Worden er opnamen gemaakt > 2meter hoogte,
waarbij geen vaste voorzieningen aanwezig zijn?',
                        'subVraag' => array(
                                1 => 'Voorkom bij een hoogte > 2 meter het gebruik
van een ladder. Zorg voor andere hulpmiddelen. Een
ladder mag alleen gebruikt worden (tot max. 10
meter), mits er geen andere mogelijkheden zijn.'
                        )
                ),
                10 => array(
                        'hoofdVraag' => 'Kunnen de ladders zodanig geplaatst worden
dat hun stabiliteit tijdens het gebruik gewaarbord is?',
                        'subVraag' => array(
                                1 => 'Zorg voor een alterniatieve oplossing, zoals
bijvoorbeeld het gebruik van een geny/hoogwerker.'
                        )
                ),
                11 => array(
                        'hoofdVraag' => 'Wordt er op daken of langs vloeropeningen
tot 2,5 meter hoogte gewerkt?',
                        'subVraag' => array(
                                1 => 'Zorg voor voorzieningen (afscherming) wanneer
zich beneden extra gevaarlijke zaken gevinden (zoals
puntige uitsteksels en water)'
                        )
                ),
                12 => array(
                        'hoofdVraag' => 'Wordt er op daken/langs vloeropeningen
gewerkt op een hoogte van 2,5 meter of hoger?',
                        'subVraag' => array(
                                1 => 'Zorg dat mensen ten minste 3 meter van de rand
gehouden worden (> 3 meter bij slecht weer)',
                                2 => 'Zorg voor voorzieningen, waardoor het
valgevaar wordt voorkomen; aanbrengen van een
railing'
                        )
                ),
                13 => array(
                        'hoofdVraag' => 'Worden opnames gemaakt vanuit de bak van
een hoogwerker?',
                        'subVraag' => array(
                                1 => 'Zorg er voor dat extra
veiligheidsvoorzieningen worden getroffen bij het
gebruik van een camera die geplaatst is in een bak
van een hoogwerker.',
                                2 => 'Zorg voor een veilige camerabevestiging naast
de gewone regels t.a.v. hoogwerkers.'
                        )
                ),
                14 => array(
                        'hoofdVraag' => 'Zijn er toeschouwersplaatsen van een in
gebruik zijnde tribune camera\'s e.d. geplaatst?',
                        'subVraag' => array(
                                1 => 'Dit is niet toegestaan! Zorg voor een andere
camerapositie.'
                        )
                ),
                15 => array(
                        'hoofdVraag' => 'Worden op gangpaden van een in gebruik
zijnde tribune camera\'s e.d. gebruikt?',
                        'subVraag' => array(
                                1 => 'Dit is niet toegestaan! Zorg voor een andere
camerapositie.'
                        )
                ),
                16 => array(
                        'hoofdVraag' => 'Is er sprake van een hooggelegen werkplek
voor de cameraman of volgspotter?',
                        'subVraag' => array(
                                1 => 'Zorg dat de cameraplek/volgspot zo
geconstrueerd is dat onbevoegden zich hier geen
toegang toe kunnen verschaffen of zorg voor
toezicht.',
                                2 => 'Zorg dat deze plek zodanig is ingericht dat
het niet mogelijk is dat de cameraman/spotter zelf
of apparatuur of materialen die de cameraman/spotter
in gebruik heeft, valt, door -indien nodig
bevestiging/valbanden te gebruiken.',
                                3 => 'Zorg voor een veilige vluchtmogelijkheid.',
                                4 => 'Zorg voor veilige constructie (controle!) en
veilige bereikbaarheid.'
                        )
                ),
                17 => array(
                        'hoofdVraag' => 'Dient er langer dan 4 oor of langer dan 1
uur onafgebroken staad werk verricht te worden?',
                        'subVraag' => array(
                                1 => 'Voorkom dat langer dan 4 uur per dag staand
werk wordt verricht. Bekijk de mogelijkheid om het
werk zittend (bijvoorbeeld met zadelkruk) uit te
voeren.',
                                2 => 'Voorkom dat langer dan 4 uur per dag staand
werk wordt verricht. Neem per uur een zittende
rustpauze van circa een kwartier.'
                        )
                ),
                18 => array(
                        'hoofdVraag' => 'Dient de cameraman een gedwongen of
ongunstige (gedraaide, begogen) houding aan te nemen?',
                        'subVraag' => array(
                                1 => 'Voorkom het aannemen van een gedwongen of
ongunstige houding lagner dan 8 minuten per uur
(bijvoorbeeld door aanpassing van een decor of
camerapositie).'
                        )
                ),
                19 => array(
                        'hoofdVraag' => 'Wordt de camera langer dan 1 uur per
opnamedag op de schouder gedragen?',
                        'subVraag' => array(
                                1 => 'Voorkom langdurig werken met de camera op de
schouder. gebruik zoveel mogelijk een statief en
neem rustpauzes voor de ontspanning van de spieren.'
                        )
                ),
                20 => array(
                        'hoofdVraag' => 'Kunnen de bewegingen gecontroleerd worden
uitgevoerd?',
                        'subVraag' => array(
                                1 => 'Voorkom ongecontroleerde (onverwachte)
bewegingen.'
                        )
                ),
                21 => array(
                        'hoofdVraag' => 'Kan tijdens de rustmomenten worden gezeten?',
                        'subVraag' => array(
                                1 => 'Zorg voor zitfaciliteiten in de nabije omgeving.'
                        )
                ),
                22 => array(
                        'hoofdVraag' => 'Dient de cameraman ook opnamen te maken,
terwijl hij staat op het podium/op het decor?',
                        'subVraag' => array(
                                1 => 'Voorkom vallen door hoogteverschil van >= 10
centimeter.',
                                2 => 'Voorkom vallen van een trap of zorg er voor dat er signalering
aanwezig is die op het gevaar wijst.'
                        )
                ),
                23 => array(
                        'hoofdVraag' => 'Wordt er indien de cameraman op een stoel
in de kraan zit, gebruik gemaakt van gordels?',
                        'subVraag' => array(
                                1 => 'Zorg dat de cameraman wordt gewezen op het
gebruik van gordels op het gebruik.'
                        )
                ),
                24 => array(
                        'hoofdVraag' => 'Wordt bij gebruik van de kraancamera boven
het publiek voldaan aan de volgende vereisten: de kraanarm
en de overige onderdelen blijven meer dan 2,5 meter boven
het standvlak? <br /> * door het gebruik van de kraan en
zijn onderdelen mogen nooit de toegang...',
                        'subVraag' => array(
                                1 => 'Geef geen opdracht tot/neem adequate
maatregelen om te zorgen dat de kraan niet onder 2,5
meter boven het standvlak (ook van tribunes!) zakt.'
                        )
                ),
                25 => array(
                        'hoofdVraag' => 'Is de geluidstechnicus genoodzaakt om een
voorovergebogen of gedraaide rug als houding in te nemen of
om te werken boven de macht/met opgetrokken schouders?',
                        'subVraag' => array(
                                1 => 'Zorg er voor dat de geluidstechnicus niet
langer dan 8 minuten per uur inde ongunstige houding
werkt.'
                        )
                ),
                26 => array(
                        'hoofdVraag' => 'Maakt de aard van de productie het mogelijk
gebruik te maken van een hulpmiddel dat de geluidhengel
ondersteunt?',
                        'subVraag' => array(
                                1 => 'Zorg dat het mogelijk is dat gebruik gemaakt
wordt van een hulpmiddel dat de geluidshengel
ondersteunt, zodat de belasting voor de
geluidstechnicus wordt beperkt.'
                        )
                ),
                27 => array(
                        'hoofdVraag' => 'Vanwege de hoge fysieke belasting dienst
het gebruik van een steadycam zoveel mogelijk worden
vermeden. Indien deze toch ingezet wordt, wordt dan voldaan
aan de volgende vereisten:<br />* gebruik van een steadycam
max. 1/2 uur per dag<br />* de steadycamoperator...',
                        'subVraag' => array(
                                1 => 'Beperk de inzet van de steadycam-operator tot
maximaal 1/2 uur per dag. Indien dit tot knelpunten
leidt, overleg dan met de leidinggevende, c.q.
inhuurder tijdens de productie.',
                                2 => 'Zet alleen een steadycam-operator in die fysiek gezond is verklaard
het werk uit te voeren.'
                        )
                ),
                28 => array(
                        'hoofdVraag' => 'Heeft de (ingehuurde) chauffeur aantoonbaar
een rijbewijs voor het besturen van het voertuig?',

                ),
                29 => array(
                        'hoofdVraag' => 'Wanneer de opnamen plaatsvinden rijdend
over een openbare weg, dan moet aan alle wettelijke
verkeersregels worden voldaan. Zijn hierover afspraken
gemaakt met de chauffeur?',

                ),
                30 => array(
                        'hoofdVraag' => 'Wordt de opnameapparatuur veilig bevestigd
en onafhankelijk geborgd door veiligheidskabels?',

                ),
                31 => array(
                        'hoofdVraag' => 'Belemmert de aanwezigheid van de
opnameapparatuur (incl. kleine handheldcamera\'s) en de
positie van de operator het blikveld van de chauffeur?',

                ),
                32 => array(
                        'hoofdVraag' => 'Belemmert de aanwezigheid van de
opnameapparatuur (incl. kleine handheldcamera\'s) en de
positie van de operator de aandacht van de chauffeur af
onder het rijden?',

                ),
                33 => array(
                        'hoofdVraag' => 'Is de positie van de cameraman onder alle
omstandigheden veilig, inclusief noodsituaties die te
voorzien zijn?',

                ),
                34 => array(
                        'hoofdVraag' => 'Zijn er effectieve maatregelen genomen om
te voorkomen dat de aanwezige apparatuur enige inzittende
raakt in geval van een noodstop of een ongeval?',

                ),
                35 => array(
                        'hoofdVraag' => 'Voldoend de voertuigen in een studio aan de
hiervoor geldende voorschriften (studiovoorschriften)?',

                ),
                36 => array(
                        'hoofdVraag' => 'Zijn er met de verantwoordelijke ter
plaatse afspraken gemaakt omtrent de juiste benodigde
informatie en training directe supervisie?',

                ),
                37 => array(
                        'hoofdVraag' => 'Is gecontroleerd of de reële belasting van
de studiovloer en het dak/plafond niet groter is dan de
maximaal toegestane belasting?',

                ),
                38 => array(
                        'hoofdVraag' => 'Is gecontroleerd of de reële belasting van
de studiovloer en het dak/plafond niet groter is dan de
maximaal toegestane belasting?',

                ),
                39 => array(
                        'hoofdVraag' => 'Kunnen de wagens veilig ter plekke van de
opnamelocatie komen (veilig op de weg, veiligheid ter
plekke, voldoende reistijd)?',
                        'subVraag' => array(
                                1 => 'Zoek alternatieve transportmogelijkheden.',
                                2 => 'Zorg dat de medewerkers veilig ter plekke kunnen komen.'
                        )
                ),
                40 => array(
                        'hoofdVraag' => 'Is de transportweg overal voldoende breed
en hoog (poorten)?',
                        'subVraag' => array(
                                1 => 'Zoek alternatieve route of zet andere wagens
in.',
                                2 => 'Zorg voor andere belading.'
                        )
                ),
                41 => array(
                        'hoofdVraag' => 'Bij aanwezigheid van bruggen: stelt de aard
van de brug beperkingen aan de in te zetten wagens (maximale
belasting van de brug, breedte van het wegdek)?',
                        'subVraag' => array(
                                1 => 'Kies een alternatieve route of zet andere
wagens in.'
                        )
                ),
                42 => array(
                        'hoofdVraag' => 'Is er voldoende tijd ingeroosterd om op de
locatie te komen, rekening houdend met eventuele files en/of
andere obstakels?',
                        'subVraag' => array(
                                1 => 'Houdt bij planning van de reistijd (heen en
terug) rekening met de voorziene knelpunten en/of
houdt een extra marge aan.'
                        )
                ),
                43 => array(
                        'hoofdVraag' => 'Kunnen de regie- en audiowagens horizontaal
worden geplaatst evt. met behulp van hydraulische
systemen?',
                        'subVraag' => array(
                                1 => 'Zorg dat de wagens horizontaal geplaatst
kunnen worden.'
                        )
                ),
                44 => array(
                        'hoofdVraag' => 'Staan de wagens tijdens in- en uitstappen,
in- en uitladen dan wel tijdens de registratiefase veilig
voor wat betreft langsrijdend verkeer?',
                        'subVraag' => array(
                                1 => 'Zorg dat de in- en uitstapplaatsen voldoende
groot zijn om veilig in- en uit te stappen en/of
zorg voor afscherming.',
                        )
                ),
                45 => array(
                        'hoofdVraag' => 'Staan de wagens tijdens in- en uitladen dan
wel tijdens de registratiefase in een "veilige buurt"?',
                        'subVraag' => array(
                                1 => 'Zorg dat adequate maatregelen worden genomen
(bijvoorbeeld inhuur van beveiligingspersoneel) om
een veilige werkplek te garanderen.',
                        )
                ),
                46 => array(
                        'hoofdVraag' => 'Dienen de kabels over de openbare weg
gelegd te worden?',
                        'subVraag' => array(
                                1 => 'Zorg dat de kabels boven het wegdek adequaat
ondersteund worden en hoog genoeg zijn, zodat
passerend verkeer (elke voorzienbare wagen,
inclusief lading) hier veilig onderdoor kan
rijden.',
                                2 => 'Zorg dat de kabels over een (openbare) weg duidelijk zijn aangegeven
met bijvoorbeeld veiligheidsvlaggetjes.'
                        )
                ),
                47 => array(
                        'hoofdVraag' => 'Is de externe locatie beoordeeld of deze
geschikt is dan wel knelpunten met zich meebrecht voor
intern transport?<br />Bijvoorbeeld de externe locatie op de
volgende onderdelen:<br />- aanwezigheid van trappen,
drempels, hellingen (helingshoek meer dan 10%)<br />        -
voorzieningen (zoals bijvoorbeeld leuningen) of obstakels
die een goed transport bemoeilijken/onmogelijk maken<br />        -
aanwezigheid van uitstekende voorwerpen',
                        'subVraag' => array(
                                1 => 'Gebruik waar mogelijk goederenliften of
hulpmiddelen. Plan de hulpmiddelen in, zoals
bijvoorbeeld een trappenloper.',
                        )
                ),
                48 => array(
                        'hoofdVraag' => 'Moet er -eventueel door onvoldoende
medewerkers (zie boven) onder tijdsdruk worden gewerkt-, met
als risico een grotere kans op aandoeningen van het
bewekingsapparaat (fysieke belasting) en ongevallen?',

                ),
                49 => array(
                        'hoofdVraag' => 'Is er overeenstemming tussen de producent
en de facilitaire bedrijven bij wie technici worden
ingehuurd over de benodigde laad-, los en bouwtijd?',

                ),
                50 => array(
                        'hoofdVraag' => 'Is de te gebruiken elektrische installatie
op de opnamelocatie recent gekeurd?',
                        'subVraag' => array(
                                1 => 'Ga na wanneer de installatie voor het laatst
gekeurd is en wanneer dit opnieuw gepland staat.'
                        )
                ),
                51 => array(
                        'hoofdVraag' => 'Worden alle elektrische aansluitingen
uitgevoerd door ter zake kundige (zie NEN 3140)?',
                        'subVraag' => array(
                                1 => 'Laat een lichttechnicus of een andere ter zake
kundige inplannen.'
                        )
                ),
                52 => array(
                        'hoofdVraag' => 'Moet er in vochtige omstandigheden gewerkt
worden?',
                        'subVraag' => array(
                                1 => 'Tref voorzorgsmaatregelen.'
                        )
                ),
                53 => array(
                        'hoofdVraag' => 'Is er sprake van een gladde en/of
horizontale vloer?',
                        'subVraag' => array(
                                1 => 'Ga na wat de belemmeringen zijn bij het
gebruik van de opnamemiddelen en de daaruit volgende
fysieke belasting van de bedienende operationale
technici. Zoek naar oplossingen om de belasting per
medewerker zo beperkt mogelijk te houden.'
                        )
                ),
                54 => array(
                        'hoofdVraag' => 'Is er sprake van een opname (in de buurt)
van sproeiwater/water dat verneveld wordt (foneinen,
bubbelbaden e.d.)?',
                        'subVraag' => array(
                                1 => 'Ga na of er sprake kan zijn van een risico op
Legionella.'
                        )
                ),
                55 => array(
                        'hoofdVraag' => 'Is het noodzakelijk dat leden van de crew
zich voor, tijdens of na de werkzaamheden in de studio/op de
locatie (mogelijk) gaan douchen?',
                        'subVraag' => array(
                                1 => 'Ga na -indien de doucge met een lagere
frequentie dan 1x per werk wordt gebruikt, of er
adquate maatregelen zijn getroffen tegen
Legionella.'
                        )
                ),
                56 => array(
                        'hoofdVraag' => 'Kan de OBV op de juiste manier worden
geaard?',

                ),
                57 => array(
                        'hoofdVraag' => 'Zijn antennes en satellietschotels zo
gesitueerd dat ze -indien nodig- afgeschermd zijn zodat
niemand blootgesteld kan worden aan te hoge magnetische
straling?',

                ),
                58 => array(
                        'hoofdVraag' => 'Heeft er met de beheerder van de externe
locatie afstemming plaatsgevonden over de BHV-organisatie
(BHV-ers, BHV-middelen, (vrijhouden van) vluchtwegen?',
                        'subVraag' => array(
                                1 => 'Zorg voorafgaand aan de opnameperiode voor
afspraken op het gebied van de BHV-organisatie,
inclusief wie waarvoor verantwoordelijk is:<br />-
aantal BHV-ers,<br />- aanwezige BHV-middelen<br />-
(vrijhouden van) vluchtwegen'
                        )
                ),
                59 => array(
                        'hoofdVraag' => 'Worden de cast en crew en eventuele derden
geïnformeerd over de ontruimingsprocedure ter plekke?',
                        'subVraag' => array(
                                1 => 'Zorg dat de opnameploeg en derden vooraf
worden geïnformeerd over ontruimingsprocedures en
vluchtwegen.'
                        )
                ),
                60 => array(
                        'hoofdVraag' => 'Zijn er afspraken gemaakt over hoe te
handelen wanneer de weersomstandigheden zodanig zijn
verslechteren dat de veiligheid en de gezondheid van de
medewerkers in gevaar kan komen?',
                        'subVraag' => array(
                                1 => 'Stel van te voren vast wie en/of welke
beslissing wordt genomen bij dergelijke
weersomstandigheden (bijvoorbeeld onweer, orkanen).'
                        )
                ),
                61 => array(
                        'hoofdVraag' => 'Worden er opnamen gemaakt bij of vlakbij de
openbare weg?',
                        'subVraag' => array(
                                1 => 'Beoordeel of er gebruik moet worden gemaakt
van hoogvisuele kleding.'
                        )
                ),
                62 => array(
                        'hoofdVraag' => 'Dient er voor de opname verkeer omgeleid te
worden?',
                        'subVraag' => array(
                                1 => 'Zorg dat er hiervoor specifieke toestemming
gevraagd en verkregen wordt van de locale politie.'
                        )
                ),
                63 => array(
                        'hoofdVraag' => 'Indien de verkeersaanwijzingen worden
gegeven door iemand van of namens de productie, heeft er dan
een instructie plaatsgevonden ten aanzien van wat te doen
als andere chauffeurs deze aanwijzingen niet opvolgen?',

                ),
                64 => array(
                        'hoofdVraag' => 'Wanneer de opnamen plaatsvinden direct
langs de openbare weg dan dient een zodanige afstand te
worden genomen dat het rijdende verkeer niet wordt afgeleid
en daarvoor in gevaar wordt gebracht. Wordt hier rekening
mee gehouden?',

                ),
                65 => array(
                        'hoofdVraag' => 'Is er bij opnames van auto/motorraces
voorzien in veilige camerastandpunten?',

                ),
                66 => array(
                        'hoofdVraag' => 'Indien de productie zich over twee of meer
aaneengesloten dagen uitstrekt, is er dan sprake van
voldoende nachtrust (een onafgebroken rusttijd van ten
minste 11 uur)?',

                ),
                67 => array(
                        'hoofdVraag' => 'Is de dagelijkse productietijd (exclusief
pauzes) voor alle medewerkers minder dan 12 uur?',

                ),
                68 => array(
                        'hoofdVraag' => 'Is uitloop van de werktijd mogelijk/te
verwachten?',
                        'subVraag' => array(
                                1 => 'Voorkom irritatie bij de medewerkers door:<br
/>* afspraken te maken met de
werkgever/leidinggevende ter plekke van ingehuurde
medewerkers over de uitloop.<br />* direct te
communiceren bij dreigende uitloop (via hun
leidinggevende)'
                        )
                ),
                69 => array(
                        'hoofdVraag' => 'Is er sprake van nachtarbeid (00:00-06:00
uur?)',

                ),
                70 => array(
                        'hoofdVraag' => 'Is/wordt bij de planning regeltijd
meegenomen om te voorkomen dat door een te strakke
tijdsplanning in combinatie met onverwachte wijzigingen een
hoge tijdsdruk kan ontstaan?',
                        'subVraag' => array(
                                1 => 'Zorg voor voldoende regelmogelijkheden (tijd)
om te compenseren voor extra repetitie/opnametijd in
verband met de productie.'
                        )
                ),
                71 => array(
                        'hoofdVraag' => 'Is er voldoende peuzetijd per productiedag
ingepland:<br />meer dan 5,5 uur per productiedag: 30
minuten aaneengesloten pauzes<br />meer dan 8 uur: 45
minuten, waarvan 30 minuten aaneengesloten pauzes<br />meer
dan 10 uur: 60 minuten, waarvan 30 minuten aaneengesloten
pauzes',

                )
        );
    }

    public function fillAction() {

        $index = (int)$this->_request->getParam('vraag', 0);

        $answers = new Zend_Session_Namespace('answers');
        $entry = 'vraag_'.$index;

        $questions = new Default_Model_DbTable_Formulier();

        $answer = $answers->answer->$entry;

        $form = new ZendX_JQuery_Form();
        $form->setMethod('post');
        $form->setAction('/index/fill/vraag/'.$index);

        if($index == 0) {
            $projectNaam = new Zend_Form_Element_Text('projectNaam');
            $projectNaam->setRequired(true)
                    ->setLabel('Project Naam')
                    ->setValue($answer['projectnaam'])
                    ->addValidator('Alnum', false, array('allowWhiteSpace' => true));
            $form->addElement($projectNaam);

            $uitvoerDatum = new ZendX_JQuery_Form_Element_DatePicker('uitvoerDatum');
            $uitvoerDatum->setLabel('Uitvoer datum')
                    ->setRequired(true)
                    ->setValue($answer['uitvoerdatum']);

            $form->addElement($uitvoerDatum);

            $soort = new Zend_Form_Element_Select('soort');
            $soort->setLabel('Soort project')
                    ->setValue($answer['soort'])
                    ->addMultiOptions(array(
                    'reguliere uitzending' => 'reguliere uitzending','project' => 'project'
            ));

            $form->addElement($soort);


        }else {

            $question= new Zend_Form_Element_Radio('hoofdVraag');
            $question->setRequired(true)
                    ->setLabel($this->_questions[$index]['hoofdVraag'])
                    ->setValue($answer['antwoord'])
                    ->setAttribs(array('id' => 'hoofd'))
                    ->setErrorMessages(array(
                    'IS_EMPTY' => 'U moet deze vraag met JA of NEE beantwoorden om verder gaan'
                    ))
                    ->setMultiOptions(array('ja', 'nee', 'voorlopig overslaan'));

            $form->addElement($question);

            if($this->_questions[$index]['subVraag']) {

                foreach($this->_questions[$index]['subVraag'] as $row => $subQuestion) {
                    $question= new Zend_Form_Element_Checkbox('subVraag'.$row);
                    $question->setRequired(true)
                            ->setLabel($subQuestion)
                            ->setValue($answer['subVraag'][$row-1]['antwoord'])
                            ->setErrorMessages(array(
                            'IS_EMPTY' => 'Bij JA bent u verplicht deze optie af te vinken (indien gereed)'
                            ))
                            ->setAttrib('id', 'sub');
                    $form->addElement($question);
                }

            }

            $question = new Zend_Form_Element_Text('openVraag');
            $question->addValidator('Alnum', false, array('allowWhiteSpace' => true))
                    ->setValue($answer['extraInformatie'])
                    ->setLabel('Extra informatie');

            $form->addElement($question);
        }

        $form->addElement(new Zend_Form_Element_Submit('Volgende'));

        if($this->getRequest()->isPost()) {

            if($index <> 0) {
                $post = $this->getRequest()->getPost();
                if($post['hoofdVraag'] == 0) {
                    foreach($this->_questions[$index]['subVraag'] as $row => $subQuestion) {
                        $element = $form->getElement('subVraag'.$row);
                        $element->setUncheckedValue(null);
                    }
                }
            }

            if($form->isValid($this->getRequest()->getPost())) {

                $formData = $form->getValues();

                $subData = array();

                if($index == 0) {
                    $data = array(
                            'projectnaam' => $formData['projectNaam'],
                            'uitvoerdatum' => $formData['uitvoerDatum'],
                            'soort' => $formData['soort'],

                    );
                }else {
                    foreach($this->_questions[$index]['subVraag'] as $row => $subQuestion) {
                        $subData[] = array(
                                "vraag" => $subQuestion,
                                "antwoord" => $formData['subVraag'.$row]
                        );
                    }

                    $data = array(
                            "vraag" => $this->_questions[$index]['hoofdVraag'],
                            "antwoord" => $formData['hoofdVraag'],
                            "subVraag" => $subData,
                            "extraInformatie" => $formData['openVraag']
                    );
                }
                $answers->answer->$entry = $data;

                if($index == count($this->_questions)) {
                    return $this->_helper->redirector('formulier');
                }else {
                    return $this->_helper->redirector('fill', null, null, array('vraag' => $index+1));
                }
            }
        }

        $this->view->current = $index+1;
        $this->view->total = count($this->_questions)+1;
        $this->view->form = $form;

    }

    public function formulierAction() {
        $answers = new Zend_Session_Namespace('answers');

        $returnAnswer = array();

        foreach($answers->answer as $row => $answer) {

            if($row == "vraag_0") {
                $returnAnswer[] = array("Project naam", $answer['projectnaam']);
                $returnAnswer[] = array("Uitvoer datum", $answer['uitvoerdatum']);
            }else {
                switch($answer['antwoord']) {
                    case(0):
                        $returnAnswer[] = array($answer['vraag'], "ja");
                        break;
                    case(1):
                        $returnAnswer[] = array($answer['vraag'], "nee");
                        break;
                    case(2):
                        $returnAnswer[] = array($answer['vraag'], '<a title="Vul deze vraag als nog in" href="/index/fill/vraag/'.str_replace('vraag_', '', $row).'">overgeslagen</a>');
                        break;

                }
                foreach($answer['subVraag'] as $sub) {
                    $returnAnswer[] = array("----".$sub['vraag'], ($sub['antwoord']? "gereed": ""));
                }
                if($answer['extraInformatie']) {
                    $returnAnswer[] = array("Aditionele informatie :", $answer['extraInformatie']);
                }
            }
        }

        $this->view->answers = $returnAnswer;
    }

    public function resetAction() {
        $answers = new Zend_Session_Namespace('answers');
        $answers->answer = new stdClass();
        return $this->_helper->redirector('fill');
    }

    public function indexAction() {
        $formulier = new Default_Model_DbTable_FormulierGebruiker();
        $user = Zend_Auth::getInstance();
        if($user->getStorage()->read()->role == "admin") {
            $formulieren = $formulier->fetchAll();
        }else {
            $formulieren = $formulier->fetchAll($formulier->select()->where('owner = ?', $user->getStorage()->read()->id));
        }

        $this->view->formulieren = $formulieren->toArray();
    }

    public function loadAction() {
        $answers = new Zend_Session_Namespace('answers');
        $formulier = new Default_Model_DbTable_Formulier();

        $formId = $this->getRequest()->getParam('formulier', 0);

        if($formId <> 0) {
            $form = $formulier->find($formId);
            $value = $form->toArray();

            $answers->answer = unserialize($value[0]['value']);
            return $this->_helper->redirector('fill');
        }else {
            $this->view->message = "Niet zo'n form id gevonden";
        }
    }

    public function continueAction() {
        $answers = new Zend_Session_Namespace('answers');
        $formulier = new Default_Model_DbTable_Formulier();

        $formId = $this->getRequest()->getParam('id', 0);

        if($formId <> 0) {
            $form = $formulier->find($formId);
            $value = $form->toArray();

            $answers->answer = unserialize($value[0]['value']);

            $index = count(get_object_vars($answers->answer));
            return $this->_helper->redirector('fill', null, null, array('vraag' => $index));
        }else {
            $this->view->message = "Niet zo'n form id gevonden";
        }
    }

    public function saveAction() {
        $form = new Zend_Form();
        $form->setMethod('post');
        $form->setAction('/index/save/'.$index);

        $element = new Zend_Form_Element_Text('formulierNaam');
        $element->setRequired(true)
                ->setLabel('Geef de naam voor het formulier op')
                ->addValidator(new Tc_Validate_NoRecordExistForUser('formulier', 'name', 'owner'));

        $form->addElement($element);

        $form->addElement(new Zend_Form_Element_Submit('versturen'));

        if($this->getRequest()->isPost()) {
            if($form->isValid($this->getRequest()->getPost())) {

                $answers = new Zend_Session_Namespace('answers');
                $auth = Zend_Auth::getInstance();

                $data = array(
                        'id' => null,
                        'name' => $form->getValue('formulierNaam'),
                        'value' => serialize($answers->answer),
                        'owner' => $auth->getStorage()->read()->id,
                        'verstuurd' => new Zend_Db_Expr('NOW()')

                );

                $formulier = new Default_Model_DbTable_Formulier();
                $formulier->insert($data);
                return $this->_helper->redirector('index');
            }else {
                $this->view->form = $form;
            }
        }else {
            $this->view->form = $form;
        }
    }

    public function deleteAction() {

        if(is_int((int)$this->getRequest()->getParam('id'))) {
            $formulier = new Default_Model_DbTable_Formulier();

            $where = array(
                    'id = '. (int)$this->getRequest()->getParam('id'),
                    'owner = '. (int)Zend_Auth::getInstance()->getStorage()->read()->id
            );
            $formulier->delete($where);
        }
        return $this->_helper->redirector('index');
    }

    public function pdfAction() {
        $this->_helper->layout->disableLayout();
        $this->getHelper('viewRenderer')->setNoRender();

        $formulier = new Default_Model_DbTable_Formulier();

        $formId = $this->getRequest()->getParam('id', 0);

        if($formId <> 0) {
            $form = $formulier->find($formId);
            $value = $form->toArray();

            $answers->answer = unserialize($value[0]['value']);
        }

        $returnAnswer = null;
        foreach($answers->answer as $row => $answer) {

            if($row == "vraag_0") {
                $returnAnswer .= "Project naam". $answer['projectnaam']."\n";
                $returnAnswer .= "Uitvoer datum". $answer['uitvoerdatum']."\n";

            }else {
                $returnAnswer .= "Vraag ".(str_replace('vraag_', '', $row))." : ".$answer['vraag']."\n";

                switch($answer['antwoord']) {
                    case(0):
                        $returnAnswer .= "Ja\n";
                        break;
                    case(1):
                        $returnAnswer .= "Nee\n";
                        break;
                    case(2):
                        $returnAnswer .= "Overgeslagen\n";
                        break;

                }

                foreach($answer['subVraag'] as $sub) {
                    $returnAnswer .= "    ".$sub['vraag']."\n";
                    $returnAnswer .= "    ".($sub['antwoord']? "Gereed": "")."\n";
                }
                if($answer['extraInformatie']) {
                    $returnAnswer .= "Aditionele informatie : ". $answer['extraInformatie']."\n";
                }
            }
            $returnAnswer .= "\n";
        }

        $filename = APPLICATION_PATH . "/../data/temp/" . md5(mt_rand(0, 32) . time()) . ".pdf";
        $pdf = new Zend_Pdf();

        $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);

        $style = new Zend_Pdf_Style();
        $style->setFont($font, 14);
        $pdf = new Zend_Pdf();
        $pdf->pages[] = ($page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
        $page->setStyle($style);

        $text = $returnAnswer;

        $text = wordwrap($text, 80, "\n", false);
        $token = strtok($text, "\n");



        $y = 740;
        while ($token != false) {
            if ($y < 60) {
                $pdf->pages[] = ($page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4));
                $page->setStyle($style);
                $y = 740;
            }
            else {
                $page->drawText($token, 40, $y);
                $y-=15;
            }
            $token = strtok("\n");
        }
        $pdfData = $pdf->render();
        $this->getResponse()->setHeader('Content-type', 'application/pdf');
        $this->getResponse()->setHeader('Content-Disposition', 'filename="'.$value[0]['name'].'.pdf"');
        echo $pdfData;


    }

    protected function pdf1Action() {

        $html = "";

        require_once 'dompdf_config.inc.php';
        $autoloader = Zend_Loader_Autoloader::getInstance(); // assuming we're in a controller
        $autoloader->pushAutoloader('DOMPDF_autoload');


        $dompdf = new DOMPDF();
        $dompdf->set_paper("a4","portrait");
        $dompdf->load_html($html);
        $dompdf->set_base_path($_SERVER['DOCUMENT_ROOT']);
        $dompdf->render();
        
        //$dompdf->stream("document.pdf");
    }
}



